<?php
require_once '../ORM/ORMRol.php';
require_once 'logControlador.php';

if(!empty($_POST)) {
    switch($_POST['accion']) {
        case 'getRoles':
            getRoles();
            break;
        case 'getRolesCombo':
            getRolesCombo();
            break;
        case 'agregarRol':
            $nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING);
            agregarRol($nombre);
            break;
        case 'eliminarRol':
            $idRol = filter_input(INPUT_POST, 'idRol', FILTER_SANITIZE_NUMBER_INT);
            eliminarRol($idRol);
            break;
        case 'editarLabel':
            $idRol = filter_input(INPUT_POST, 'idRol', FILTER_SANITIZE_NUMBER_INT);
            editarLabel($idRol);
            break;
        case 'guardarRol':
            $idRol = filter_input(INPUT_POST, 'idRol', FILTER_SANITIZE_NUMBER_INT);
            $nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING);
            guardarRol($idRol, $nombre);
            break;
    }
}

function getRoles() {
    $roles = ORMGetRoles();
    $flag = false;
    echo "<table class='table table-striped table-bordered'>\n";
    foreach ($roles as $key => $value) {
        if($flag) {
            echo "<tr>\n";
            $flag = false;
        } else {
            echo "<tr class=\"alternate-row\">\n";
            $flag = true;
        }
        echo "<td width=\"80%\"><div id=\"".$key."\"><label>".$value."</label></div></td>\n";
        echo "<td width=\"10%\"><a href=\"#\" id=\"".$key."\" onclick=\"editarLabel(".$key.");\"><i class='icon-edit'></i></a></td>";
        echo "<td width=\"10%\"><a href=\"#\" id=\"".$key."\" onclick=\"eliminarRol(".$key.");\"><i class='icon-remove'></i></a></td>\n";
        
        echo "</tr>";
    }
    echo "</table>\n";
}

function getRolesCombo() {
    $roles = ORMGetRoles();
    
    echo "<select id=\"combo\">\n";
    foreach ($roles as $key => $value) {
        echo "<option value=\"".$key."\">".$value."</option>\n";
    }
    echo "</select>\n";
}

function agregarRol($nombre) {
    $name = $nombre;
    if(strlen($name) > 0) {
        if(ORMExisteRol($name) > 0) {
            echo "<i title=\"El Rol ya existe\" class=\"icon-warning-sign\"></i>";
        } else {
            ORMAgregarRol($name);
            if(ORMExisteRol($name) > 0) {
                agregarLog("Se agregó el Rol: ".$nombre);
                echo "<i title=\"El Rol fue agregado con &eacute;xito\" class=\"icon-ok\"></i>";
                ?>
<script type="text/javascript">
    $(document).ready(function() {
        cargarRolesExistentes();
    });
</script>
            <?php
            } else {
                echo "<i title=\"El Rol no se pudo agregar\" class=\"icon-warning-sign\"></i>";
            }
        }
    } else {
        echo "<i title=\"Debe escribir un nombre para el Rol\" class=\"icon-warning-sign\"></i>";
    }
}

function eliminarRol($idRol) {
    $id = filter_var($idRol, FILTER_SANITIZE_NUMBER_INT);
    
    ORMDeleteRolMenu($idRol);
    ORMDeleteRol($idRol);
}

function editarLabel($idRol) {
    echo "<input type=\"text\" id=\"label-".$idRol."\" value=\"".ORMgetRol($idRol)."\" maxlength=\"45\" />\n";
    echo "<a href=\"#\" onclick=\"guardarRol(".$idRol.");\">";
    echo "<i title=\"Guardar\" class=\"icon-refresh\"></i>";
    echo "</a>\n";
}

function guardarRol($idRol, $nombre) {
    if(strlen($nombre) > 0) {
        ORMActualizarRol($idRol, $nombre);
    }
    echo "<label>".ORMgetRol($idRol)."</label>";
}
?>